package javaTeste.tAssinaturaMetodo;

import java.AssinaturaMetodo;
import java.atributo.TiposPrimitivos;
import java.parametro.Parametro;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;


public class TesteCriarAAssinaturadeMetodos implements Especificacao {

	AssinaturaMetodo agua = null;

	@Before
	public void up() {
		agua = new AssinaturaMetodo("agua");
	}

	@Test
	public void metodoAbstratoAgua() {
		agua.setAbstract(true);
		Assert.assertEquals("abstract void agua()", agua.codigoFonte());

	}

	@Test
	public void metodoAgua() {
		Assert.assertEquals("void agua()", agua.codigoFonte());
	}

	@Test
	public void metodoRetornoINTAbstratoAgua() {
		agua.setAbstract(true);
		agua.setRetorno(TiposPrimitivos.INT);
		Assert.assertEquals("abstract int agua()", agua.codigoFonte());

	}

	@Test
	public void metodoRetornoINTAbstratoAguaParametrosINTa_Int_C() {
		agua.setAbstract(true);
		agua.setRetorno(TiposPrimitivos.INT);
		agua.addParametro(new Parametro(TiposPrimitivos.INT, "a"));
		agua.addParametro(new Parametro(TiposPrimitivos.INT, "c"));

		Assert.assertEquals("abstract int agua(int a, int c)", agua
				.codigoFonte());

	}

}
